Radio Host Immediate Fixes - #5554
Conversation
Turns out I got baited following the rabbit in the previous PR. Don't need a bunch of this junk since I already have the LowVolume variable. I can just base everything off of that.
Now when you examine the Vinyl Player, it will tell you what is inside if there is anything inside. If you examine the radio, it will tell you if it is at full or low volume.
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughSummaryThis PR updates Radio Host spawning, access, and station radio behavior.
Notable changes
Risk areas
Guideline gaps
WalkthroughStation radio speakers now require power and select chat output from receiver volume. Station radio entities expose examination details. RadioHost equipment and Journalism access settings were updated. ChangesStation radio updates
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant Examiner
participant ExaminedEvent
participant StationRadioReceiverSystem
participant VinylPlayerSystem
participant SharedRadioDeviceSystem
Examiner->>ExaminedEvent: Examine station radio entity
ExaminedEvent->>StationRadioReceiverSystem: Invoke receiver examination
ExaminedEvent->>VinylPlayerSystem: Invoke vinyl player examination
ExaminedEvent->>SharedRadioDeviceSystem: Invoke server examination
StationRadioReceiverSystem-->>Examiner: Display receiver volume
VinylPlayerSystem-->>Examiner: Display vinyl contents
SharedRadioDeviceSystem-->>Examiner: Display recording status
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Almost forgot this.
There was a problem hiding this comment.
Actionable comments posted: 7
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs`:
- Line 200: Add a recognized // Starlight ownership marker to the modified
condition in RadioDeviceSystem, placing it before or on the existing //
Goobstation - Radio Host comment while preserving the condition’s behavior.
- Line 200: Add a recognized Starlight ownership marker to the change at
Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs lines 200-200, since the
existing Goobstation marker is insufficient. Extend the existing Starlight
marker pair through the changed relay call at lines 210-220, or mark lines
216-220 individually; ensure every Starlight change in this non-_Starlight C#
file has an unambiguous marker.
In
`@Content.Shared/_Goobstation/StationRadio/Systems/StationRadioReceiverSystem.cs`:
- Around line 240-248: Group the new Starlight additions inside `#region`
Starlight blocks: wrap OnExamined in StationRadioReceiverSystem.cs (lines
240-248) and VinylPlayerSystem.cs (lines 160-176) in method regions, and place
_container with the Starlight dependency fields in VinylPlayerSystem.cs (line
24) within a variable region.
- Around line 243-247: Update OnExamined to avoid reporting playback when the
receiver is inactive or unpowered, using the same state represented by GetGain
returning 0f. Add and select a localized non-playing message for that state;
retain the existing low-volume and full-volume messages only when the radio is
active and powered.
In `@Content.Shared/_Goobstation/StationRadio/Systems/VinylPlayerSystem.cs`:
- Line 24: Wrap the Starlight-specific _container dependency in
VinylPlayerSystem’s variable declarations inside a `#region` Starlight block,
grouping it with any other Starlight variables while leaving unrelated
dependencies outside the region.
In `@Resources/Locale/en-US/_Goobstation/machines/stationradio.ftl`:
- Around line 13-18: Update the new localization keys in the existing
`_Goobstation` stationradio FTL file to include the required Starlight ownership
marker, preserving the file location and all message text.
In `@Resources/Prototypes/_Goobstation/Loadouts/loadout_groups.yml`:
- Line 4: Mark each Starlight-owned change by appending the comment marker “#
Starlight” to Resources/Prototypes/_Goobstation/Loadouts/loadout_groups.yml
lines 4-4, Resources/Prototypes/_Goobstation/Roles/Jobs/Crew/radiohost.yml lines
12-12, and radiohost.yml lines 17-17; keep all files in their existing
locations.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 20841b42-4fd6-4c55-a34e-3ffd096d2763
📒 Files selected for processing (8)
Content.Server/Radio/EntitySystems/RadioDeviceSystem.csContent.Shared/Radio/Components/RadioSpeakerComponent.csContent.Shared/_Goobstation/StationRadio/Systems/StationRadioReceiverSystem.csContent.Shared/_Goobstation/StationRadio/Systems/VinylPlayerSystem.csResources/Locale/en-US/_Goobstation/machines/stationradio.ftlResources/Prototypes/_Goobstation/Entities/Structures/Machines/StationRadio/radio_recievers.ymlResources/Prototypes/_Goobstation/Loadouts/loadout_groups.ymlResources/Prototypes/_Goobstation/Roles/Jobs/Crew/radiohost.yml
💤 Files with no reviewable changes (2)
- Content.Shared/Radio/Components/RadioSpeakerComponent.cs
- Resources/Prototypes/_Goobstation/Entities/Structures/Machines/StationRadio/radio_recievers.yml
|
Just realised there are some jobs that should have journalism access but don't like NTR and BlueShield. I'll add that tomorrow so Reporters aren't spawned in a room they have no access to. |
BSO, NTR and Reporter all get Journalism. Service Workers get Journalism as extended access.
Also more documentation since this is a upstream system and as much documentation should be provided. This introduces a bug that causes messages to be hidden from the radio when it is in lowvolume mode. I don't know how to fix.
You can now examine the radio server to see if it is recording or not.
Just doing what the rabbit wants. Literally no changes in code, its all formatting to appease our AI overlord.
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
Content.Shared/Radio/EntitySystems/SharedRadioDeviceSystem.cs (1)
56-60: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winDocument the new public override.
Initialize()is public and was added without XML documentation. Add a short<summary>that explains itsExaminedEventsubscription.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@Content.Shared/Radio/EntitySystems/SharedRadioDeviceSystem.cs` around lines 56 - 60, Add XML documentation with a concise summary to the public override Initialize method, explicitly describing its subscription to ExaminedEvent for StationRadioServerComponent. Keep the existing initialization and subscription behavior unchanged.Source: Path instructions
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@Content.Shared/Radio/EntitySystems/SharedRadioDeviceSystem.cs`:
- Around line 55-74: Add a recognized Starlight ownership marker around the new
Initialize and OnExamined block in SharedRadioDeviceSystem, using either a //
Starlight comment or paired // Starlight-start and // Starlight-end comments
instead of relying only on the `#region` Starlight directive.
- Around line 70-72: Correct the recording-state mapping in
SharedRadioDeviceSystem’s examine localization: ensure mic.Enabled == true
displays the “recording” message and false displays the “not recording” message.
Update the corresponding station-radio localization values or swap the keys used
by the ternary without changing the surrounding examine flow.
---
Nitpick comments:
In `@Content.Shared/Radio/EntitySystems/SharedRadioDeviceSystem.cs`:
- Around line 56-60: Add XML documentation with a concise summary to the public
override Initialize method, explicitly describing its subscription to
ExaminedEvent for StationRadioServerComponent. Keep the existing initialization
and subscription behavior unchanged.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 3cde87bd-bb91-4583-9920-b2283b28e30e
📒 Files selected for processing (9)
Content.Server/Radio/EntitySystems/RadioDeviceSystem.csContent.Shared/Radio/EntitySystems/SharedRadioDeviceSystem.csContent.Shared/_Goobstation/StationRadio/Systems/StationRadioReceiverSystem.csContent.Shared/_Goobstation/StationRadio/Systems/VinylPlayerSystem.csResources/Locale/en-US/_Goobstation/machines/stationradio.ftlResources/Prototypes/Roles/Jobs/Civilian/service_worker.ymlResources/Prototypes/Roles/Jobs/Wildcards/reporter.ymlResources/Prototypes/_Starlight/Roles/Jobs/Representatives/blueshield.ymlResources/Prototypes/_Starlight/Roles/Jobs/Representatives/nanotrasenrepresentative.yml
🚧 Files skipped from review as they are similar to previous changes (4)
- Resources/Locale/en-US/_Goobstation/machines/stationradio.ftl
- Content.Shared/_Goobstation/StationRadio/Systems/VinylPlayerSystem.cs
- Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs
- Content.Shared/_Goobstation/StationRadio/Systems/StationRadioReceiverSystem.cs
Make up your damn mind rabbit.
I don't need to add a region to define it if i create a comment region. But if I do it the way he wants it, he wants me to add a comment region back. bruh
This reverts commit 0d9fe52.
|
@CodeRabbit rereview plz |
|
✅ Action performedReview finished.
|
The last bug to fix. The station radio will no longer send messages to ghosts, and the Speaking and Whispering based on whether LowVolume is equal to True or False is now officially fixed. Thank you so much to Centronias who solved this bug for me. Its also why is in // Moffstation comments because it's his fix and I am so thankful for him saving me wasting my day off trying to bootleg a fix.
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@Content.Server/Chat/Systems/ChatSystem.cs`:
- Around line 637-640: Wrap the changed radio-host range-check block in
ChatSystem with a recognized Starlight ownership marker, while preserving the
existing Moffstation markers and logic. Place the marker around the code
involving MessageRangeCheck(session, data, range) and its Disallowed condition
so upstream merges can identify the Starlight change.
- Around line 637-640: Update the station-radio handling around
MessageRangeCheck so ChatTransmitRange.HideChat does not deliver messages or
clear-seen updates to ghosts; use ChatTransmitRange.NoGhosts or an equivalent
explicit ghost filter while preserving hidden-chat behavior for live listeners.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 68f42315-0e97-4460-8daf-59e1457704c3
📒 Files selected for processing (1)
Content.Server/Chat/Systems/ChatSystem.cs
|
Should be good to go. |
|
@CodeRabbit what is left to get your approval |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
repo="ss14Starlight/space-station-14"
pr_number="5554"
echo "== Pull request status =="
gh pr view "$pr_number" --repo "$repo" \
--json state,isDraft,mergeStateStatus,reviewDecision,statusCheckRollup,reviews \
--jq '{
state,
isDraft,
mergeStateStatus,
reviewDecision,
checks: [.statusCheckRollup[]? | {name: .name, status: .status, conclusion: .conclusion}],
reviews: [.reviews[]? | {author: .author.login, state: .state, submittedAt: .submittedAt}]
}'
echo
echo "== Unresolved review threads =="
gh api graphql \
-F owner="ss14Starlight" \
-F name="space-station-14" \
-F number="$pr_number" \
-f query='
query($owner: String!, $name: String!, $number: Int!) {
repository(owner: $owner, name: $name) {
pullRequest(number: $number) {
reviewThreads(first: 100) {
nodes {
isResolved
path
line
comments(first: 20) {
nodes {
author { login }
body
createdAt
}
}
}
}
}
}
}' \
--jq '.data.repository.pullRequest.reviewThreads.nodes[]
| select(.isResolved == false)
| {
path,
line,
comments: [.comments.nodes[] | {
author: .author.login,
createdAt,
body
}]
}'Length of output: 4619
I found no unresolved review threads. All current CI checks passed. The cancelled GitHub still reports the PR as Post You are interacting with an AI system. |
cf1c188
## Short description <!-- What do you propose to change with your PR? --> Adds the following to Serpentcrest: - Radio Host Room - Journalisim Access doors - Departmental lathes - Station Radios Also adds a RadioHost job slot to Serpentcrest.yml REQUIREMENTS: Requires: ss14Starlight#5587 or ss14Starlight#5554 ## Why we need to add this <!-- What is the reason for adding these changes? Please post links to Discussions as well as Bug Reports here. Please describe how this will change the game balance. --> Apart of new mapping chores due to new changes ## Media (Video/Screenshots) <!-- If your PR contains in-game changes you must provide screenshots/videos of the changes. --> 2 Station Radios located inside the bar: <img width="529" height="511" alt="image" src="https://github.com/user-attachments/assets/2fa24095-ffde-47ae-83d3-eb6344381327" /> Station Radio located in genpop so the prisinors can hear the beats: <img width="904" height="583" alt="image" src="https://github.com/user-attachments/assets/9dea2670-335e-4ce6-9d9a-55ca046da737" /> Station Radio located right next to cryo room: <img width="631" height="690" alt="image" src="https://github.com/user-attachments/assets/dda8c589-66ab-4507-a607-b68285c49616" /> The Radio Host's room: <img width="631" height="318" alt="image" src="https://github.com/user-attachments/assets/bc3780da-7938-4e3c-b6eb-953cf41bb0c0" /> Updated Airlocks: <img width="463" height="106" alt="image" src="https://github.com/user-attachments/assets/6a7a1cbc-db05-494a-9e12-c534c8e27370" /> <img width="477" height="93" alt="image" src="https://github.com/user-attachments/assets/b87715c7-80d9-4d91-9801-d5095b76aaef" /> Station Radio located inside medical Breakroom: <img width="708" height="769" alt="image" src="https://github.com/user-attachments/assets/e2664c78-971a-4d98-8b2f-08d4f8719fea" /> Station Radio located inside Cargo breakroom: <img width="581" height="573" alt="image" src="https://github.com/user-attachments/assets/399d5018-213e-4d9b-928e-750d6704cb38" /> Station Radio located inside Security Breakroom: <img width="896" height="325" alt="image" src="https://github.com/user-attachments/assets/770bd2b5-ff28-41a5-9b50-8ac81ebfc950" /> Station Radio Located inside Science Breakroom: <img width="434" height="708" alt="image" src="https://github.com/user-attachments/assets/b6b966ad-3039-4cc1-b960-fe516c533e5e" /> Station Radio Located inside Bridge: <img width="733" height="422" alt="image" src="https://github.com/user-attachments/assets/054d0c58-146b-44c0-827e-36c795598748" /> ### **Departmental Lathes:** Service Lathe: <img width="979" height="600" alt="image" src="https://github.com/user-attachments/assets/04d0d69d-3339-4fbe-a74d-ed98b22dd4c4" /> Engineering Lathe: <img width="458" height="266" alt="image" src="https://github.com/user-attachments/assets/60a110d6-17a8-49e3-9bd3-2664983e0fae" /> Command Lathe: <img width="785" height="650" alt="image" src="https://github.com/user-attachments/assets/7f44cd0d-9aa4-48ac-884b-8839f0c08416" /> Science Lathe: <img width="191" height="390" alt="image" src="https://github.com/user-attachments/assets/f1a55d8b-a6bd-4ece-b620-38f3f6ce2ee3" /> Cargo Lathe: <img width="258" height="448" alt="image" src="https://github.com/user-attachments/assets/2e17e63a-ba02-4ba8-803d-cc196289370d" /> ## Checks <!-- check boxes for faster reviewing of your PR --> - [x] I do not require assistance to complete the PR. - [x] Before posting/requesting review of a PR, I have verified that the changes work. - [x] I have added screenshots/videos of the changes, or this PR does not change in-game mechanics. - [x] I affirm that my changes are licensed under the [MIT License](https://github.com/ss14Starlight/space-station-14/blob/Starlight/LICENSE.TXT) and grant permission for use in this repository under its conditions. **Changelog** <!-- If you want the players to know about changes made in this PR, specify them using the template outside the comment. Short and informative. --> :cl: Forrestgod - add: (Serpentcrest) Radio Host room as well as Station Radios. - add: (Serpentcrest) Departmental Lathes are now present inside each department. - tweak: (Serpentcrest) Added Journalisim access doors to reporters office.
Short description
So the chat range was not working on the first PR. I think in the demonstration video its also not working, I just accidentally gaslit myself into thinking it was working in testing cause the aghost has infinite whisper range.
Now it actually functions. By default...
Station Radios will relay messages normally.
If low volume mode is enabled, then it will whisper the message instead.
Why we need to add this
🐛 🔫
Media (Video/Screenshots)
Checks
Changelog
🆑 Huaqas